<?
	ob_start();
	// header('Content-Type:application/json; charset=utf8');
	header( 'Content-Type:text/html;charset=utf-8 ');
	header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
	header("Last-Modified:".gmdate("D, d M Y H:i:s")." GMT");
	header("Cache-Control: no-cache, must-revalidate");
	header("Pramga: no-cache");
	header('Access-Control-Allow-Origin: *');
	include_once '../include/function.php';
	include_once 'config.php';
	/***********************/
	/****** 问卷提交********/
	/***********************/

	// //////////////////////链接数据库//////////////////////
	include_once('../include/conn_db.php');
	include_once('../include/db_class.php');
	mysql_connect(HOST,NAME,PASS) or die(mysql_error());
	mysql_select_db(DBNAME);
	mysql_query('SET NAMES '.CODEPAGE);
	$mydb = new mydb();

	////////////////////////获取表单数据//////////////////////
	$sid          = $_POST['id'];  //当前主问卷id
	$service_area = $_POST['service_area'];  //当前服务区域
	$unionid      = $_POST['unionid'];
	$openid       = $_POST['openid'];
	$submitData   = $_POST['submitData'];
	$payment      = $_POST['payment'];
	$qn_no        = date(Ymd_).createRandomStr(20) ;#生成随机号，用于问卷编号

	// //////////////////////*是否进一步显示高级题库的购买按钮//////////////////////
	#这里的判断只能写死，由于后台数据中
	#相同用户类型的普通题库和收费题库之间并没有关联
	$nextSid = 0;
	$sid == 1 && $nextSid = 2;
	$sid == 3 && $nextSid = 4;


	//**********************************************取出题库分组的信息,规则，评语***************************************************/
	$qn_group_array = array(); //保存分组的信息映射为数组数据
	$rsqng = mysql_query("select * from {$TABLE_C}vote_series where forid=$sid");
	while ($row = mysql_fetch_assoc($rsqng)) {
		$g_rule = explode('|',$row['rule']);//评级字符串，拆分成数组，看有几个评级
		$ruleArray = array(); //用来保存最终映射的评级和分数区间数组
		//遍历规则评级数量，A,B,C,D等等
		foreach ($g_rule as $key => $value) {
			$temp =  explode(':',$value);//拆分评级
			$level_str = $temp[0];//得到评级名：A或B那个意思
			$score_area = explode('-',$temp[1]); //把分数区间拆为数组
			sort($score_area);//排序
			$ruleArray[$level_str]= $score_area; //把数据装入最终映射用的数组
		}
		$qn_group_array[$row['id']] = Array(
			'name' => $row['name'],
			'rule' => $ruleArray,
			'evaluate' => array(
				'A'    => mb_substr(preg_replace('/<\/?\w+>/isU','',$row['evaluate_a']),0,5000,'utf-8'),
				'B'    => mb_substr(preg_replace('/<\/?\w+>/isU','',$row['evaluate_b']),0,5000,'utf-8')
			)
		);
	}
	// print_r($qn_group_array);
	// echo (json_encode($qn_group_array));



	//***********************************************计算分数和评级***********************************************//
	$answer_group = explode(',',preg_replace('/s|_q\d+/is','',$submitData));//过滤掉只剩组的id和答案，用于处理
	$answer_group_key = array(); //用于保存最后输出前端的数组
	$answer_group_result = array(); //用于保存最后输出前端的数组

	// 生成结果数组，以组id为key,初始分数为0
	foreach ($answer_group as $key => $value) {
		$t = explode(':',$value); //拆分数组，0是组id,1是中文答案
		// 先判断是否存在key（组id）,避免重复运行代码，因为一组答案中，有多个同组的答案
		if (!array_key_exists($t[0], $answer_group_result)) {
			$answer_group_key[] = $t[0];
			$answer_group_result[$t[0]] = array( "score" => 0,"subjectNum"=>0);//初始化分数,和该组的总题数
			// 同时写得到组的标题,并写入
			$qn_g_info = $mydb->fetch_assoc("select id,name from {$TABLE_C}vote_series where id={$t[0]} order by id");
			$g_title = $qn_g_info['name'];
			$answer_group_result[$t[0]]['name'] = $g_title;
		}
	}
	// 遍历初始答案：统计总分，统计题目数（以实际提交的数据来计算）
	foreach ($answer_group as $key => $value) {
		// 累加分数
		$t = explode(':',$value); //拆分数组，0是组id,1是中文答案
		$score_ = $score_map[$t[1]]; //把中文答案，映射为分数
		$answer_group_result[$t[0]]['score'] += $score_; //对应的key的score值累加分数
		$answer_group_result[$t[0]]['subjectNum'] +=1; //统计题每个组id的题目数量
	}

	// 计算该组的满分
	foreach ($answer_group_result as $key => $value) {
		$answer_group_result[$key]['score_full'] = $answer_group_result[$key]['subjectNum']* $score_map['是'];
	}

	// 映射计算评级，并取得相应的评语
	foreach ($answer_group_result as $key => $value) {
		$score_area  = $qn_group_array[$key]['rule'];        //取出组的评分规则
		$evaluate    = $qn_group_array[$key]['evaluate'];    //取出评语
		$group_score = $answer_group_result[$key]['score'];  //取出总分
		//映射评级，遍历评分规则，看在哪个区间，就反回key,(这里的key保存就是A/B/C/D)
		foreach ($score_area as $key_ => $value_) {
			if( $group_score>=$value_[0] && $group_score<=$value_[1]) {
				$answer_group_result[$key]['level'] = $key_; //直接返回key
			}
		}
		// 上面已经计算出评组了直接取出评语
		$mylevel = $answer_group_result[$key]['level'];
		$answer_group_result[$key]['evaluate'] = $evaluate[$mylevel];
	}
	// print_r( "【********************下面是最初答案数据****************】\n" );
	// print_r($answer_group);
	// print_r( "【********************组id的纯数组********************】\n" );
	// print_r($answer_group_key);
	// print_r( "【********************最终输出数组********************】\n" );
	// print_r($answer_group_result);
	


	//************************************************保存问卷****************************************************//
	// if($payment==1){}
	$save_answer_group_result = json_encode($answer_group_result); //把最终要返回前端的问卷结果，转为json格式， 保存到问卷表
	$cmd = "insert into {$TABLE_C}vote_qn(qn_no,openid,unionid,sid,service_area,answer_submit,answer_result,payment,datetime)";
	$cmd.= "values('$qn_no','$openid','$unionid',$sid,$service_area,'$submitData','$save_answer_group_result',$payment,NOW())";
	// echo $cmd;
	if(mysql_query($cmd) or die(mysql_error())){
		//把每个问题存入问题表
		$tempsubmit = preg_replace('/:/isU','_',$submitData);
		$tempsubmit = preg_replace('/[sq]/isU','',$tempsubmit);
		$tempArray = explode(',',$tempsubmit); //去掉前面的类别标记
		// print_r($tempArray);
		#遍历每个答案
		foreach ($tempArray as $key => $value) {
			$insertQnDataArray = explode('_',$value);//单个答案拆分为数组，0是题目的id,1是选择的答案
			$cmdInsert = "insert into {$TABLE_C}vote_answer(qn_no,sid,qid,answer)values('$qn_no','{$insertQnDataArray[0]}','{$insertQnDataArray[1]}','{$insertQnDataArray[2]}')";
			mysql_query($cmdInsert) or die(mysql_error());//插入数据库
		}
	}


	//****************************************生成问卷报告，存入数据库***********************************************//
	//**只有企业才需要生成报告？？？，这里未作判断 **//
	//**只有企业才需要生成报告？？？，这里未作判断 **//
	//**只有企业才需要生成报告？？？，这里未作判断 **//
	//**只有企业才需要生成报告？？？，这里未作判断 **//
	//**只有企业才需要生成报告？？？，这里未作判断 **//
	//**只有企业才需要生成报告？？？，这里未作判断 **//
	//**只有企业才需要生成报告？？？，这里未作判断 **//
	//**只有企业才需要生成报告？？？，这里未作判断 **//
	$report_content = ''; //初始化
	# 根据unionid取出公司名
	$data_usrinfo = $mydb->fetch_assoc("select * from {$TABLE_C}user where unionid='$unionid'");
	$user_company_id = $data_usrinfo['company'];
	$data_company = $mydb->fetch_assoc("select * from {$TABLE_C}company where id='$user_company_id'");
	$user_company_name = $data_company['title'];

	#遍历，得到评级部分,和评语
	$level_str = Array();
	$evaluate_str = Array();
	foreach ($answer_group_result as $key => $value) {
		#评级串成一串
		$level_str[] = $value['name'].':'.$value['level']; 
		#评语串成一串
		$str_gname_ev = "<p class='report_title'><b>{$value['name']}部分</b></p><div class='report_msg'>{$value['evaluate']}</div>";
		$evaluate_str[] = $str_gname_ev;
	}
	# 开始拼接报告 
	$report_content = '<div class="report_wrap">';
	$report_content .= "<p class='hellow'>尊敬的：<b>$user_company_name </b>公司</p>";
	$report_content .= "<p class='tip1'>法管小助手根据贵司的答题情况，对贵司的法律风险管理做出如下诊断——</p>";
	$report_content .= "<p class='tip2'>答题单位的结论为： <b>".implode(',',$level_str)."</b> 显示如下诊断结论</p>";
	$report_content .= implode('',$evaluate_str);
	$report_content .= "<p class='endtalk'>我们像鹰一样，生来就是自由的，但是为了事业的，生存、发展、繁衍、飞翔，我们不得不为自己精心编织一个笼子，然后把自己关在里面-------------[英]赫克托.博莱索</p>";
	$report_content .= "<p class='datetime'>法管小助理<br/>".date("Y年m月d日")."</p>";
	$report_content .= "</div>";
	// echo $report_content;
	#把报告插入到报告表
	$mydb->query("insert into {$TABLE_C}vote_qn_report(qn_no,report) value('$qn_no','".addslashes($report_content)."')");



	//****************************************从数据库取出下一个高级题库的信息************************************//
	$rs = mysql_query("select * from {$TABLE_C}vote_series where id=$nextSid");
	$nextData = mysql_fetch_assoc($rs);
	$nextPrice = intval($nextData['price']);

	/*  这里是否启用有待商权
	# 判断一下高级题库的题目数，如果没有题目，$nextSid应该为0，前台不让显示
	$rs = mysql_query("select * from {$TABLE_C}vote_question where series=$nextSid");
	$nextData = mysql_fetch_assoc($rs);
	if(mysql_num_rows($rs)==0) {$nextSid = 0; $nextPrice=0;}
	*/
	//*******************************************结果数据******************************************
	$results = array(
		'code' => 0,
		'msg'  => '数据正常',
		'nextSid' => $nextSid,
		'nextPrice' => $nextPrice,
		'qnNo' => $qn_no,
		'result' => $answer_group_result
	);

	// 最后处理
	mysql_close();
	echo json_encode($results);
?>